Guilherme (Portuguese) comes from Old French Willame, from Frankish Willahelm, from Proto-Germanic Wiljahelmaz, from Proto-Germanic helmaz, from Proto-Germanic halmaz, from Proto-Indo-European ḱolh₂mos, from Proto-Indo-European ḱelh₂- — to pierce, strike; to stick; prick; stab.